アノテーションのアプリ保守研修を受講しました
アノテーションのインフラチームにて、業務で使用する技術を学ぶための研修を受講しましたので、学んだことについてまとめたいと思います。
研修では以下の3つの課題でツールの実装、テスト、ドキュメント作成を行いました。
- Google Apps Script(スプレッドシート連携ツール)
- Python(サーバーレスアプリ)
- React(Webアプリ)
各言語の基本的な知識を学ぶためのUdemyの講座が教材として用意されており、適宜自己学習を行いながら課題の実装を進めていく形となります。 また、毎日の朝会で進捗や技術的に詰まっている部分をチームメンバーに共有し、アドバイスを受けることができたので楽しく開発を行うことができました。
課題内容について
Slack APIを活用してSlackからデータを取得し、各課題の指定された形式で出力する内容になります。 各課題で異なる知識が必要になるため、理解が浅い部分は調査と検証を繰り返しながら進めていきました。 私はReactが特に不慣れでしたが、今回の研修を通してReact hooksを用いた非同期処理の書き方を学べて貴重な経験になりました。
Reactでは以下のように動くアプリを作成しました。
まずトップページで自身が参加しているSlackチャンネル一覧を表示します。自身のユーザー情報は環境変数にAPIトークンを設定することで判断できるようにしました。 (その前段階でメールアドレス等を入力してユーザー情報を判断できるようにするとよりアプリケーションらしくなるかと思いましたが、研修中はそこまでは間に合わなかったのでいずれ時間作って試してみたいと思います)
上記のページからチャンネル名をクリックすると、そのチャンネルのメインスレッドを10件ごとにページングして表示する画面に遷移します。 このアプリではチャンネルに新規メッセージを投稿できる機能も要件に含まれていたので、本ページにメッセージ入力用テキストボックスと送信ボタンを設置し、メンションも可能にするためにユーザーID入力用のテキストボックスも置いています。
機能としては動いているものの、改善できる部分は多々あると思いますので、実務においてはより使いやすいものを作れるように引き続き学んでいきたいと思います。
意識したこと
以下の点を意識して研修を進めました。
- 進捗が分かりやすくなるようにチケットを管理する
- 実務ではBacklog活用してタスク管理をしていますので、研修中も各ツールで必要な機能ごとにチケットを作成し、自分自身で進捗を確認しやすくチームメンバーから見ても状況が理解しやすくなるように気をつけました。
-
ユーザーが操作に迷わない画面にする
- ユーザーが操作に迷わないような、なるべくシンプルな画面にするよう意識しました。 こちらに関してはチームメンバーに意見を頂きながら進めさせていただいて、Reactの方はまだ見づらい箇所も残っていますが、スプレッドシートの方はセルの位置を工夫したり装飾を追加することで、ある程度分かりやすい画面にすることができました。
失敗したこと及び今後の課題
Slack APIでは、実行されたAPIの検索結果がそのAPIの一度に取得できる件数を超える場合に検索結果を分割して返す仕組みとしてページネーションが行われるため、大量のデータを全件取得するには複数回APIリクエストを実行する必要があります。 しかし、課題の開発中はページネーションに対する考慮が不足していて、一定の件数を超えると全件取得できない実装になっていました。 これは設計段階でAPIの仕様をしっかり読み込み、適切な件数のテストデータを用意することで対応できたことだと思いますので、今後設計を行う際は仕様を十分理解するように気をつけたいと思います。
まとめ
業務で使用する言語でツールを実装していくことで、実務の進め方がイメージしやすくなりました。 研修で学んだことを実務に活かして良い働きができるように努めます。
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。